home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / pp / pp-6.0 / Tools / tables / domain / t-getdomain.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-12-18  |  2.2 KB  |  109 lines

  1. /* t-getdomain.c: test results of tb_getdomain */
  2.  
  3. # ifndef lint
  4. static char Rcsid[] = "@(#)$Header: /xtel/pp/pp-beta/Tools/tables/domain/RCS/t-getdomain.c,v 6.0 1991/12/18 20:33:42 jpo Rel $";
  5. # endif
  6.  
  7. /*
  8.  * $Header: /xtel/pp/pp-beta/Tools/tables/domain/RCS/t-getdomain.c,v 6.0 1991/12/18 20:33:42 jpo Rel $
  9.  *
  10.  * $Log: t-getdomain.c,v $
  11.  * Revision 6.0  1991/12/18  20:33:42  jpo
  12.  * Release 6.0
  13.  *
  14.  */
  15.  
  16. #include "util.h"
  17. #include "chan.h"
  18. #include "table.h"
  19.  
  20. main (argc, argv)
  21. int    argc;
  22. char    *argv[];
  23. {
  24.     char    buf[BUFSIZ];
  25.     extern int optind;
  26.     int    opt, dmnorder = CH_USA_ONLY;
  27.     char    *table = NULLCP;
  28.     extern char    *optarg;
  29.  
  30.     sys_init(argv[0]);
  31.     while ((opt = getopt (argc, argv, "bl0123t:T:")) != EOF) 
  32.         switch (opt) {
  33.             case 'l':
  34.             dmnorder = CH_USA_PREF;
  35.             break;
  36.             case 'b':
  37.             dmnorder = CH_UK_PREF;
  38.             break;
  39.             case '0':
  40.                     case '1':
  41.                     case '2':
  42.                     case '3':
  43.                         dmnorder = opt - '0';
  44.                         break;
  45.             case 't':
  46.             case 'T':
  47.             table = optarg;
  48.             break;
  49.             default:
  50.             printf("usage: %s [-b] [-l] [-0] [-1] [-2] [-3]\n",
  51.                    argv[0]);
  52.             exit(1);
  53.             break;
  54.         }
  55.  
  56.     argc -= optind;    
  57.     argv += optind;
  58.     
  59.     if (table != NULLCP) {
  60.         Table    *Domain;
  61.         if ((Domain = tb_nm2struct("domain")) == NULLTBL) {
  62.             printf("No table 'domain' defined\n");
  63.             exit(1);
  64.         }
  65.         Domain->tb_flags = TB_LINEAR;
  66.         Domain->tb_file = table;
  67.     }
  68.     if (argc == 0)
  69.         while (gets(buf) != NULL) {
  70.             char    *ix = &(buf[0]);
  71.             while (ix != NULLCP &&
  72.                    *ix != '\0'
  73.                    && isspace(*ix)) ix++;
  74.             if (ix != NULLCP && *ix != '\0')
  75.                 get_domain(buf, dmnorder);
  76.         }
  77.     else
  78.         while (argc--)
  79.             get_domain(*argv++, dmnorder);
  80.     exit(0);
  81. }
  82.  
  83. get_domain(dom, order)
  84. char    *dom;
  85. int    order;
  86. {
  87.     char    norm[BUFSIZ], chan[BUFSIZ], *subdom;
  88.  
  89.     if (tb_getdomain(dom, chan, norm, order, &subdom) != OK)
  90.         printf("Domain '%s' unknown\n",
  91.                dom);
  92.     else {
  93.         printf("Input '%s'\nNormalised '%s'\n",
  94.                dom, norm);
  95.         if (subdom != NULLCP) {
  96.             printf("Local sub hub '%s'\n",
  97.                    subdom);
  98.             free(subdom);
  99.         }
  100.         if (chan[0] != '\0')
  101.             printf("Channel key '%s'\n",
  102.                    chan);
  103.         else
  104.             printf("No channel key\n");
  105.     }
  106.     printf("\n");
  107. }
  108.  
  109.